/******************************************************************************
 * Copyright (C) 2011 ShenZhen ComTop Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳康拓普开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.code.common.sessioncache.action;

import java.util.Enumeration;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionContext;

/**
 * session实现类
 * 
 * @author 郑重
 * @since 1.0
 * @version 2010-8-25 郑重
 */
@SuppressWarnings("deprecation")
public class HttpSessionWrapper implements HttpSession {
    
    /**
     * session对象
     */
    private final HttpSession session;
    
    /**
     * @param session HttpSession
     */
    public HttpSessionWrapper(HttpSession session) {
        this.session = session;
    }
    
    /**
     * 得到属性
     * 
     * @param key 键名
     * @return session值
     * @see javax.servlet.http.HttpSession#getAttribute(java.lang.String)
     */
    public Object getAttribute(String key) {
        return this.session.getAttribute(key);
    }
    
    /**
     * 枚举所有属性
     * 
     * @return 所有属性名的枚举
     * @see javax.servlet.http.HttpSession#getAttributeNames()
     */
    public Enumeration<String> getAttributeNames() {
        return this.session.getAttributeNames();
    }
    
    /**
     * 创建时间戳
     * 
     * @return session创建时间戳
     */
    public long getCreationTime() {
        return session.getCreationTime();
    }
    
    /**
     * 返回sessionID
     * 
     * @return sessionID
     */
    public String getId() {
        return session.getId();
    }
    
    /**
     * 得到最后一次访问时间
     * 
     * @return session最后一次访问时间
     */
    public long getLastAccessedTime() {
        return session.getLastAccessedTime();
    }
    
    /**
     * 最大活动时间
     * 
     * @return session最大活动时间
     */
    public int getMaxInactiveInterval() {
        return session.getMaxInactiveInterval();
    }
    
    /**
     * 上下文
     * 
     * @return Servlet上下文对象
     */
    public ServletContext getServletContext() {
        return session.getServletContext();
    }
    
    /**
     * 上下文
     * 
     * @return 属性上下文对象
     */
    public HttpSessionContext getSessionContext() {
        return session.getSessionContext();
    }
    
    /**
     * 值
     * 
     * @param arg0 属性名
     * @return 属性值
     */
    public Object getValue(String arg0) {
        return session.getValue(arg0);
    }
    
    /**
     * 名称数组
     * 
     * @return session属性名数组
     */
    public String[] getValueNames() {
        return session.getValueNames();
    }
    
    /**
     * 使会话失效
     */
    public void invalidate() {
        this.session.invalidate();
    }
    
    /**
     * 是否新会话
     * 
     * @return 是否新会话
     */
    public boolean isNew() {
        return session.isNew();
    }
    
    /**
     * 设置值
     * 
     * @param arg0 属性名
     * @param arg1 属性值
     */
    public void putValue(String arg0, Object arg1) {
        session.putValue(arg0, arg1);
    }
    
    /**
     * 移除属性
     * 
     * @param arg0 属性名
     */
    public void removeAttribute(String arg0) {
        this.session.removeAttribute(arg0);
    }
    
    /**
     * 移除属性
     * 
     * @param arg0 属性对应的键
     */
    public void removeValue(String arg0) {
        session.removeValue(arg0);
    }
    
    /**
     * 设置值
     * 
     * @param arg0 session属性名(键)
     * @param arg1 session属性值
     */
    public void setAttribute(String arg0, Object arg1) {
        this.session.setAttribute(arg0, arg1);
    }
    
    /**
     * 设置最大活动时间
     * 
     * @param arg0 最大活动时间
     */
    public void setMaxInactiveInterval(int arg0) {
        session.setMaxInactiveInterval(arg0);
    }
}